package com.zhuiyun.project.api.memberTypeManagement.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhuiyun.project.api.memberTypeManagement.entity.MemberTypeManagement;
import com.zhuiyun.project.api.memberTypeManagement.model.MemberTypeIdModel;
import com.zhuiyun.project.api.memberTypeManagement.model.MemberTypeManagementModel;
import com.zhuiyun.project.api.memberTypeManagement.model.MemberTypeModel;
import com.zhuiyun.project.common.errorCode.CommonException;
import com.zhuiyun.project.common.response.CommonResult;
import com.zhuiyun.project.utils.pageUtil.PageRequest;
import com.zhuiyun.project.utils.pageUtil.PageResult;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * @InterfaceName MemberTypeService
 * @Description TODO 会员管理接口
 * @Author WX
 * @Date 2023/11/2 11:38
 **/
public interface MemberTypeService extends IService<MemberTypeManagement> {
    /**
     * @Author WX
     * @Description 获取会员类型信息
     * @Date 2023/11/2 13:52
     * @Return
     * @param pageRequest memberTypeManagementModel
     */
    PageResult getMemberType(PageRequest pageRequest, MemberTypeManagementModel memberTypeManagementModel);
    /**
     * @Author WX
     * @Description 通过id获取会员类型信息
     * @Date 2023/11/2 15:20
     * @Return
     * @param id
     */
    MemberTypeManagement getById(Integer id,String venueUniqueIdentifier);
    /**
     * @Author WX
     * @Description 添加会员类型信息
     * @Date 2023/11/2 15:58
     * @Return
     * @param memberTypeModel
     */
    CommonResult addMember(MemberTypeModel memberTypeModel) throws CommonException;
    /**
     * @Author WX
     * @Description 通过id删除会员类型信息
     * @Date 2023/11/2 19:02
     * @Return
     * @param id
     */
    CommonResult delMember(Integer id,String venueUniqueIdentifier);
    /**
     * @Author WX
     * @Description 通过id修改会员类型信息
     * @Date 2023/11/2 19:19
     * @Return
     * @param memberTypeModel
     */
    CommonResult updateMemberById(MemberTypeModel memberTypeModel) throws CommonException ;
    /**
     * @Author WX
     * @Description 修改会员状态
     * @Date 2023/11/2 19:32
     * @Return
     * @param memberTypeIdModel
     */
    CommonResult updateEnableStatus( MemberTypeIdModel memberTypeIdModel);
    /**
    * @Author wx
    * @Description 查看该会员类型下是否有会员数据
    * @Date 2023/12/7 9:54
    * @Return
    * @param memberTypeId
    */
    boolean getByMemberTypeId(Integer memberTypeId, String venueUniqueIdentifier);
}
